import java.util.ArrayList;
import java.util.List;

//杨辉三角
public class YH_triangle {
    public static List<List<Integer>> generate(int numRows){
        List<List<Integer>> ret = new ArrayList<>(); //相当于二维数组
        List<Integer> list = new ArrayList<>();
        //给第一行添加一个1，已经添加到了ret
        list.add(1);
        ret.add(list);
        //开始从第二行计算
        for(int i = 1; i < numRows; i++){
            //当前行
            List<Integer> curRow = new ArrayList<>();
            curRow.add(1);//每一行刚开头都是1
            //每一行中间的位置
            List<Integer> preRow = ret.get(i-1); //前一行
            for(int j = 1; j < i; j++){
                int num = preRow.get(j) + preRow.get(j-1);
                curRow.add(j, num);
            }//中间位置添加完毕
            curRow.add(1); //每一行的最后一个1
            ret.add(curRow); //将每一行添加到ret中
        }
        return ret;
    }
    public static void main(String[] args) {
        List<List<Integer>> ret = generate(5);
        for (int i = 0; i < 5; i++) {
            System.out.println(ret.get(i));
        }
    }
}
